//
//  ViewController.m
//  UI28-动画（一）
//
//  Created by 韩旭 on 16/8/22.
//  Copyright © 2016年 HX_. All rights reserved.
//

#import "ViewController.h"
#import "UIView+Frame.h"
@interface ViewController ()
@property (nonatomic, strong) UIView *AnimationView;

@end

@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    self.AnimationView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
    self.AnimationView.backgroundColor = [UIColor redColor];
    [self.view addSubview:_AnimationView];
    //    UIView Animation
    //    开始设置动画
    //    参数1.动画标识
    //    参数2. 上下文
//    [UIView beginAnimations:nil context:NULL];
    //    开始时缓慢
    //    UIViewAnimationCurveEaseInOut,         // slow at beginning and end
    //    和结束时缓慢、
    //    UIViewAnimationCurveEaseIn,            // slow at beginning
    //    UIViewAnimationCurveEaseOut,           // slow at end
    //    UIViewAnimationCurveLinear
    //   2>设置动画持续的时间
//    [UIView setAnimationDuration:5];
//    //    延迟多久执行
////    [UIView setAnimationDelay:10];
////  设置开始时间
////    [UIView setAnimationStartDate:[NSDate dateWithTimeIntervalSinceNow:2]];
//    //   3> 设置动画曲线，如何运动动画
////    重复次数
//
////    [UIView setAnimationRepeatCount:3];
//    [UIView setAnimationCurve:2];
////    设置往返动画， 1个来回算一次
////    [UIView setAnimationRepeatAutoreverses:YES];
////    忽略动画过程
    [UIView setAnimationsEnabled:YES];
//    //   5> 动画的改变
//    self.AnimationView.HX_width = self.view.frame.size.width;
//    //     动画的代理， 不签订代理，代理方法不执行（默认为不签订）
//    [UIView setAnimationDelegate:self];
//    //    将要开始
//    [UIView setAnimationWillStartSelector:@selector(animationWillStart:context:)];
//    //    将要结束
//    [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
//    //   5> 结束动画设置，执行该动画
//    [UIView commitAnimations];
    //
    //    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(10 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    //
    //        for (int i = 0; i <  101; i ++) {
    //            self.AnimationView.centerX = i;
    //        }
    //
    //    });
//    2. UIViewAnimationBlock
//    1> UIViewBlockAnimation
//    参数1. 持续时间
//    参数2. block ，需要执行的动画效果
    
//    [UIView animateWithDuration:2 animations:^{
//        _AnimationView.centerX = 300;
//    }];
    
//    2.> 动画完成后需要执行的
//    [UIView animateWithDuration:5 animations:^{
//        _AnimationView.centerX = 300;
//    } completion:^(BOOL finished) {
//         NSLog(@"动画完成后");
//    }];
//    参数2. 延迟效果
//    参数3。选项枚举，按位枚举1 << 0, 多选
    [UIView animateWithDuration:3 delay:0 options:UIViewAnimationOptionTransitionFlipFromBottom animations:^{
        
        _AnimationView.centerX = 200;
    } completion:^(BOOL finished) {
    
        NSLog(@"动画完成");
    }];
}
- (void)animationWillStart:(NSString *)animationID context:(void *)context {
    NSLog(@"动画将要开始");
}
- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
    NSLog(@"动画已经结束");
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
